/* 解题思路：
        1. 找到a数组的最长上升子序列LIS
        2. 找到a数组的最长下降子序列
        3. 加上两个序列的长度，就是a数组的最长上升下降子序列的长度
*/
#include<iostream>
#include<vector>

using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    vector<int> b(n, 1);
    vector<int> c(n, 1);
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for(int i = 0; i < n; i++) {
        for(int j=0; j<i; j++) {
            if(a[i] > a[j])
                b[i] = max(b[i], b[j] + 1);
        }
    }
    for(int i=n-1; i>=0; i--) {
        for(int j=n-1; j>i; j--) {
            if(a[i] > a[j])
                c[i] = max(c[i], c[j] + 1);
        }
    }
    int ans = 0;
    for(int i = 0; i < n; i++) {
        ans = max(ans, b[i] + c[i] - 1);
    }
    cout << n - ans << endl;
    return 0;
} 